package ru.iteco.Java.study.MSGR;

import java.net.Socket;
import java.util.EventListener;

/**
 * Обрабатывает событие FromOutside - добавляет новое соединение
 * в список при подключении в результате прослушивания порта потоком
 * класса PortListener
 */
public class FromOutsideListener implements EventListener{
	
	/**
	 * берём ссылку на список из Connector
	 * @param lst - ссылка на список из Connecter
	 */
	public FromOutsideListener(ConnectionList lst) {
		this.lst=lst;
	}
	
	/**
	 * метод срабатывает если было установлено
	 * соединение врезультате слушания порта CurrentPort
	 * s - сокет полученный при прослушивании порта
	 */
	public void doConnect(Socket s)
	{
		//обработка удачного соединения извне
		System.out.println("Запрос на соединение\n\tпорт:"+s.getPort()+
				"\n\tлокальный порт:"+s.getLocalPort()+"\n\tip-адрес"+
				s.getInetAddress());
		c=new Connection(s);
		lst.add(c);
	}
	
	/**
	 * Геттер для полученного сокета
	 */
	public Socket getSocket() {
		return s;
	}
	
	private Socket s;//сокет, полученный врезультате прослушивания порта
	private Connection c;//экземпляр для работы с элементами списка
	public ConnectionList lst;//ссылка на список соединений из 
}

